home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat4 / pmns.z / pmns
Encoding:
Text File  |  2002-10-03  |  11.6 KB  |  317 lines

  1.  
  2.  
  3.  
  4. PPPPMMMMNNNNSSSS((((4444))))                                                                PPPPMMMMNNNNSSSS((((4444))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ppppmmmmnnnnssss - the performance metrics name space
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      $_P_C_P__V_A_R__D_I_R/_p_m_n_s
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      When using the Performance Metrics Programming Interface (PMAPI) of the
  16.      Performance Co-Pilot (PCP), performance metrics are identified by an
  17.      external name in a hierarchic Performance Metrics Name Space (PMNS), and
  18.      an internal identifier, the Performance Metric Identifier (PMID).
  19.  
  20.      A PMNS specifies the association between a metric's name and its PMID.
  21.  
  22.      A PMNS is defined on one or more ASCII source files, that may be compiled
  23.      using ppppmmmmnnnnssssccccoooommmmpppp(1) to produce a binary PMNS.  Note that ppppmmmmnnnnssssccccoooommmmpppp(1) is
  24.      normally invoked from the $_P_C_P__V_A_R__D_I_R/_p_m_n_s/_R_e_b_u_i_l_d script if necessary
  25.      when ppppmmmmccccdddd(1) is started.
  26.  
  27.      Loading of a PMNS is done by calling ppppmmmmLLLLooooaaaaddddNNNNaaaammmmeeeeSSSSppppaaaacccceeee(3) which silently
  28.      tolerates either the ASCII or binary formats.  Alternatively,
  29.      ppppmmmmLLLLooooaaaaddddAAAASSSSCCCCIIIIIIIINNNNaaaammmmeeeeSSSSppppaaaacccceeee(3) may be used to load just the ASCII format.
  30.  
  31.      If the binary format is used, no checking is performed for aliasing in
  32.      which multiple names in the PMNS are associated with a single PMID.  If
  33.      the ASCII format is to be used, duplicate PMIDs are not allowed, although
  34.      ppppmmmmLLLLooooaaaaddddAAAASSSSCCCCIIIIIIIINNNNaaaammmmeeeeSSSSppppaaaacccceeee(3) provides an alternative interface with user-
  35.      defined control over the processing of duplicate PMIDs in an ASCII format
  36.      PMNS.  The external ASCII format for a PMNS conforms to the syntax and
  37.      semantics described in the following sections.
  38.  
  39.      There is one default PMNS in the files below $_P_C_P__V_A_R__D_I_R/_p_m_n_s, although
  40.      users and application developers are free to create and use alternate
  41.      PMNS's.  For an example of this, see the PCP Tutorial in
  42.      $_P_C_P__D_E_M_O_S__D_I_R/_T_u_t_o_r_i_a_l.
  43.  
  44.      Although an application can call ppppmmmmLLLLooooaaaaddddNNNNaaaammmmeeeeSSSSppppaaaacccceeee(3), normally this is
  45.      only done directly for the ----nnnn command line option where an explicit root
  46.      PMNS file is specified.  Since PCP version 2 uses a distributed PMNS (see
  47.      below), an application can extract PMNS information from a host's PMCD or
  48.      an archive.  If the PMNS source (pmcd or archive) is version 1 (see
  49.      PPPPCCCCPPPPIIIInnnnttttrrrroooo(1)), however, then the local PMNS will be loaded using the path
  50.      specified by the environment variable PPPPMMMMNNNNSSSS____DDDDEEEEFFFFAAAAUUUULLLLTTTT.
  51.  
  52. DDDDIIIISSSSTTTTRRRRIIIIBBBBUUUUTTTTEEEEDDDD PPPPMMMMNNNNSSSS
  53.      In PCP version 1, the PMNS functions in the API all operated on a PMNS
  54.      loaded locally from a file. Since PCP version 2, however, PMNS functions
  55.      may get the PMNS information remotely from a PMCD or directly from the
  56.      meta data of an archive. We call this a distributed PMNS. It has the
  57.      advantage that the PMNS should always match the source of the metrics.
  58.      For example, in PCP version 1, if one wanted to access a remote PMCD
  59.      which had an agent installed which one didn't have installed locally,
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. PPPPMMMMNNNNSSSS((((4444))))                                                                PPPPMMMMNNNNSSSS((((4444))))
  71.  
  72.  
  73.  
  74.      then the local PMNS had to be updated just for that agent. This is no
  75.      longer the case.
  76.  
  77.      In order to be compatible with version 1 PMCDs and version 1 archives
  78.      (see PPPPCCCCPPPPIIIInnnnttttrrrroooo(1)), the local PMNS (PPPPMMMMNNNNSSSS____DDDDEEEEFFFFAAAAUUUULLLLTTTT) is automatically loaded
  79.      as was done previously in PCP version 1.
  80.  
  81.      From an API level, there has been minimal changes.  The main change is
  82.      that if an application wants to use the distributed PMNS then it should
  83.      nnnnooootttt call ppppmmmmLLLLooooaaaaddddNNNNaaaammmmeeeeSSSSppppaaaacccceeee(3) or ppppmmmmLLLLooooaaaaddddAAAASSSSCCCCIIIIIIIINNNNaaaammmmeeeeSSSSppppaaaacccceeee(3).  Doing so will
  84.      load the local PMNS as specified above. Not calling these functions would
  85.      previously (in PCP version 1) cause an error when trying to access the
  86.      PMNS but now (in PCP version 2) it will force the PMNS functions to look
  87.      at the metrics source for their information.
  88.  
  89. PPPPRRRROOOOCCCCEEEESSSSSSSSIIIINNNNGGGG FFFFRRRRAAAAMMMMEEEEWWWWOOOORRRRKKKK
  90.      The PMNS specification is initially passed through ccccpppppppp(1).  This means
  91.      the following facilities may be used in the specification
  92.  
  93.      +  C-style comments
  94.  
  95.      +  #_i_n_c_l_u_d_e directives
  96.  
  97.      +  #_d_e_f_i_n_e directives and macro substitution
  98.  
  99.      +  conditional processing via #_i_f ...  #_e_n_d_i_f, etc.
  100.  
  101.      When ccccpppppppp(1) is executed, the ``standard'' include directories are the
  102.      current directory and $_P_C_P__V_A_R__D_I_R/_p_m_n_s.
  103.  
  104. SSSSYYYYNNNNTTTTAAAAXXXX
  105.      The general syntax for a non-leaf node in the PMNS is as follows
  106.  
  107.      pathanme {
  108.           name      [pmid]
  109.           ...
  110.      }
  111.  
  112.      Where _p_a_t_h_n_a_m_e is the full pathname from the root of the PMNS to this
  113.      non-leaf node, with each component in the pathname separated by a ``.''.
  114.      The root node for the PMNS must have the special name ``root'', but the
  115.      common prefix ``root.'' must be omitted from all pathnames.  Each
  116.      component in the pathname must begin with an alphabetic character, and be
  117.      followed by zero more characters drawn from the alphabetics, the digits
  118.      and the underscore ``_'') character.  For alphabetic characters in a
  119.      pathname component, upper and lower case are distinguished.
  120.  
  121.      Non-leaf nodes in the PMNS may be defined in any order.
  122.  
  123.      The descendent nodes are defined by the set of _n_a_m_e_s, relative to the
  124.      _p_a_t_h_n_a_m_e of their parent non-leaf node.  For the descendent nodes, leaf
  125.      nodes have a _p_m_i_d specification, non-leaf nodes do not.  The syntax for
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. PPPPMMMMNNNNSSSS((((4444))))                                                                PPPPMMMMNNNNSSSS((((4444))))
  137.  
  138.  
  139.  
  140.      the _p_m_i_d specification has been chosen to help manage the allocation of
  141.      PMIDs across disjoint and autonomous domains of administration and
  142.      implementation.  Each _p_m_i_d consists of 3 integer parts, separated by
  143.      colons, e.g. 14:27:11.  This hierarchic numbering scheme is intended to
  144.      mirror the implementation hierarchy of performance metric domain, metrics
  145.      cluster (data structure or operational similarity) and individual metric.
  146.      In practice, the two leading components are likely to be macros in the
  147.      PMNS specification source, and ccccpppppppp(1) will convert the macros to
  148.      integers.  These macros for the initial components of the _p_m_i_d are likely
  149.      to be defined either in a standard include file, e.g.
  150.      $_P_C_P__V_A_R__D_I_R/_p_m_n_s/_s_t_d_p_m_i_d, or in the current source file.
  151.  
  152.      The current allocation of the high-order (PMD or domain) component of
  153.      PMIDs is as follows.
  154.                         ___________________________________
  155.                           Range          Allocation
  156.                         ___________________________________
  157.                                0   reserved
  158.                         ___________________________________
  159.                             1-31   SGI internal
  160.                         ___________________________________
  161.                            32-39   Oracle
  162.                         ___________________________________
  163.                            40-47   Sybase
  164.                         ___________________________________
  165.                            48-55   Informix
  166.                         ___________________________________
  167.                               60   Linux
  168.                         ___________________________________
  169.                           56-127   ISV Performance Metrics
  170.                         ___________________________________
  171.                          128-254   End-user applications
  172.                         ___________________________________
  173.                         ||||||||||||||||||
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.                                  ||||||||||||||||||
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.                                                            ||||||||||||||||||
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. EEEEXXXXAAAAMMMMPPPPLLLLEEEE
  227.      #define IRIX 1
  228.      root {
  229.          network
  230.          cpu
  231.      }
  232.  
  233.      #define NETWORK 26
  234.      network {
  235.          intrate                       IRIX:NETWORK:1
  236.          packetrate
  237.      }
  238.  
  239.      network.packetrate {
  240.          in                            IRIX:NETWORK:35
  241.          out                           IRIX:NETWORK:36
  242.      }
  243.  
  244.  
  245.  
  246.  
  247.                                                                         PPPPaaaaggggeeee 3333
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254. PPPPMMMMNNNNSSSS((((4444))))                                                                PPPPMMMMNNNNSSSS((((4444))))
  255.  
  256.  
  257.  
  258.      #define CPU 10
  259.      cpu {
  260.          syscallrate                   IRIX:CPU:10
  261.          util
  262.      }
  263.  
  264.      #define USER 20
  265.      #define KERNEL 21
  266.      #define IDLE 22
  267.  
  268.      cpu.util {
  269.          user                          IRIX:CPU:USER
  270.          sys                           IRIX:CPU:KERNEL
  271.          idle                          IRIX:CPU:IDLE
  272.      }
  273.  
  274. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  275.      PPPPCCCCPPPPIIIInnnnttttrrrroooo(1), ppppmmmmccccdddd(1), ppppmmmmnnnnssssccccoooommmmpppp(1), PPPPCCCCPPPPIIIInnnnttttrrrroooo(3), PPPPMMMMAAAAPPPPIIII(3), ppppmmmmEEEErrrrrrrrSSSSttttrrrr(3),
  276.      ppppmmmmGGGGeeeettttCCCCoooonnnnffffiiiigggg(3), ppppmmmmLLLLooooaaaaddddAAAASSSSCCCCIIIIIIIINNNNaaaammmmeeeeSSSSppppaaaacccceeee(3), ppppmmmmLLLLooooaaaaddddNNNNaaaammmmeeeeSSSSppppaaaacccceeee(3), ppppccccpppp....ccccoooonnnnffff(4)
  277.      and ppppccccpppp....eeeennnnvvvv(4).
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.                                                                         PPPPaaaaggggeeee 4444
  314.  
  315.  
  316.  
  317.